package com.lottemall.order.web;

import com.lottemall.order.service.OrderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.Map;

/**
 * 给微信支付系统进行回调的，通知我们用户是否支付成功
 */
@Slf4j
@RestController
@RequestMapping("notify")
public class NotifyController {
    @Autowired
    private OrderService orderService;
    /**
     * 用户支付成功，给微信支付系统进行回调，
     * @param result 调用方传来的数据（由于微信是传输的xml，一定记得加入jackson-dataformat-xml依赖，这样@RequestBody才能被springmvc自动判断转换，否则只会json字符串转成对象）
     * @return
     */
    @PostMapping(value = "pay",produces = "application/xml")//这里声明了返回值类型是xml，因为微信支付系统需要 响应，但格式是xml类型
    public Map<String, String> handleNotify(@RequestBody Map<String,String> result) {
        //处理回调
        orderService.handleNotify(result);
        log.info("[支付回调]接受微信支付回调，结果{}",result);
        //上面没有异常就返回成功，微信就不会再次发送了
        HashMap<String, String> msg = new HashMap<>();
        msg.put("return_code", "SUCCESS");
        msg.put("return_msg", "OK");
        return msg;
    }
}
